home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The X-Philes (2nd Revision)
/
The X-Philes Number 1 (1995).iso
/
xphiles
/
hp48_2
/
asc2bin
< prev
next >
Wrap
Text File
|
1995-03-31
|
15KB
|
314 lines
Path: seq!spell
From: Detlef Mueller <detlef@mwhh.hanse.de>
Subject: v02i030: asc2bin - ASC->BIN v1.1, Part01/01
Newsgroups: comp.sources.hp48
Followup-To: comp.sys.hp48
Approved: spell@seq.uncwil.edu
Checksum: 2226323514 (verify with brik -cv)
Submitted-by: Detlef Mueller <detlef@mwhh.hanse.de>
Posting-number: Volume 2, Issue 30
Archive-name: asc2bin/part01
BEGIN_DOC asc2bin.doc
Hi, out there.
In one of the articles in comp.sys.hp48 Chris Spell wrote, that he has
problems downloading big `ASC only` programs.
Here is a little ASC-to-binary converter (written in ANSI C) for anybody who
has the same problem or no UUDECODE.
Feed the program via stdin with an extracted ASC program, it will generate a
downloadable output to stdout. The output file size is limited to ~32 kbytes
(on UNIX no problem to change, but IMO not necessary :-).
The 'unsigned' data type is assumed to be at least 16 bit in size.
ASCII character set is assumed.
I wrote the program using BORLAND C++ under MesS-DOS , but it shouldn't be
a problem to port it to other compilers/machines (operating system dependend
lines are marked).
CU,
8-), Detlef
P.S. Sorry about the poor documentation and the low error checking. I've
neither time to write a serious doc, nor time to extend the program,
so if there are any questions or problems, feel free to mail me. DM
END_DOC
BEGIN_SRC asc2bin.c
/* ASC2BIN - v 1.1 DM '91 -
Usage: ASC2BIN < [input file] > [output file]
*/
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <io.h> /* MesS-DOS */
#include <fcntl.h> /* MesS-DOS */
#define MAXDTA 32766 /* MesS-DOS */
static void Error ( int f, char *err )
{
fprintf( stderr,"\n%s\n", err ) ;
if ( f )
exit( -1 ) ;
}
static void PutNibb ( int nibb )
{
static unsigned char
in[MAXDTA], /* Input buffer */
*p = in ; /* Pointer to input buffer */
static unsigned
crc = 0, /* CRC value */
len = 0 ; /* Count of nibbles in buffer */
if ( nibb == -1 ) /* Flush input buffer */
{
if ( len <= 4 )
Error( 1, "Invalid string" ) ;
if ( crc )
Error( 0, "CRC error !!! Be carefull ..." ) ;
if ( len & 1 )
*(p - 2) &= 0x0F ; /* Mask out 1st CRC nibble */
printf( "HPHP48-E" ) ; /* Binary download header */
/* Flush input buffer to stdout */
for ( p = in, nibb = (len - 3) >> 1 ; nibb ; --nibb, ++p )
putc( *p, stdout ) ;
return ;
}
if ( ++len & 1 )
*p = nibb ;
else
*p++ |= nibb << 4 ;
if ( len > MAXDTA ) /* Input to big .. */
Error( 1, "File to big ..." ) ;
nibb = (crc ^ nibb) & 0x0F ; /* Update CRC value */
crc = (crc >> 4) ^ (nibb | (nibb << 7) | (nibb << 12)) ;
}
void main ( void )
{
int
i ;
setmode( fileno( stdout ), O_BINARY ) ; /* MesS-DOS */
while ( (i = getc( stdin )) != '"' ) /* Search for start of str */
if ( i == EOF )
Error( 1, "No data found" ) ;
while ( (i = getc( stdin )) != '"' )
if ( isxdigit( i ) ) /* Is hex-digit */
PutNibb( i - (i > '9' ? '7' : '0') ) ;
else
if ( i == EOF )
Error( 1, "Unexpected EOF" ) ;
PutNibb( -1 ) ; /* Flush input buffer */
exit( 0 ) ;
}
END_SRC
[ I compiled this using bcc -ms. If you have any problems let
me know -cgs ]
BEGIN_UU asc2bin.uue
begin 644 asc2bin.exe
M35K4`0\``P`@``T(___""8``````````/@````$`^S!J<@``````````````C
M```````````````````````!````W@```!`!````````````````````````:
M`````````````````````````````````````````````````````````````
M`````````````````````````````````````````````````````````````
M`````````````````````````````````````````````````````````````
M`````````````````````````````````````````````````````````````
M`````````````````````````````````````````````````````````````
M`````````````````````````````````````````````````````````````
M`````````````````````````````````````````````````````````````
M`````````````````````````````````````````````````````````````
M`````````````````````````````````````````````````````````````
M``````````````````````"Z=P$NB18U`K0PS2&++@(`BQXL`([:HY(`C`:0Y
M`(D>C`")+J@`Z#T!Q#Z*`(O'B]BY_W_\\J[C84,F.`5U]H#-@/?9B0Z*`+D!<
M`-/C@\,(@^/XB1Z.`(S:*^J+/I(#@?\``G,'OP`"B3Z2`X''IH1R*`,^B@-RJ
M(K$$T^]'.^]R&8,^D@,`=`>#/HH#`'4.OP`0.^]W!XO]ZP/IA`&+WP/:B1Z@R
M`(D>I`"AD``KV([`M$I7S2%?T^?ZCM*+Y_LSP"Z.!C4"OV0$N::$*\_\\ZJTG
M`,T:B1:6`(D.F``S[;AW`8[8OEX$OV0$Z.H`+HX>-0(NQ@;G`7(NQ@;6`0#_R
M-H@`_S:&`/\VA`#H50)0Z"<#N'<!CMB^9`2_9`3HN``NCAXU`O\6'`+_%AX",
M_Q8@`BZ.'C4"Z'(`,\"+\+DO``($@-0`1N+X+5P-=`FY&0"Z+P#HQ0"+[+1,7
MBD8"S2&Y#@"Z2`#IP0`>N``US2&)'G0`C`9V`+@$-<TAB1YX`(P&>@"X!37-%
M(8D>?`",!GX`N`8US2&)'H``C`:"`+@`)8S*CMJZ7`'-(1_#'K@`)<46=`#-]
M(1\>N`0EQ19X`,TA'QZX!27%%GP`S2$?'K@&)<46@`#-(1_#M/^+UXO>.]]T4
M%(`__W0*.&<!=P6*9P&+TX/#!NOH.]=T((O:'@<&@#\`Q@?_+HX>-0)T!R;_4
M7P(?Z\4F_U<"'^N^P[1`NP(`S2'#N1X`NE8`+HX>-0+HZO^X`P!0Z/G^```!<
M`%6+[/]V!KBP`%"X0@)0Z,,"@\0&@WX$`'0(N/__4.C<`5E=PU6+[(-^!/]TI
M`^F+`(,^K@`$=PVXM0!0N`$`4.B^_UE9@SZL``!T#+C$`%`SP%#HJ_]96?<&0
MK@`!`'0(BQZJ`(!G_@^XX@!0Z)`#6<<&J@!D!*&N`"T#`-'HB48$ZS'_!C("`
M?12+'JH`B@>+'CP"_P8\`H@'M`#K$+@R`E"+'JH`B@=0Z&L#65G_3@3_!JH`-
M@WX$`'7)ZVK_!JX`H:X`J0$`=`N+'JH`BD8$B`?K$8I&!+$$TN"+'JH`"`?_S
M!JH`@3ZN`/Y_=@VXZP!0N`$`4.@*_UE9H:P`,T8$)0\`B48$BT8$L0?3X(M6C
M!`O0BT8$L0S3X`O0H:P`L033Z#/"HZP`7<-5B^Q6N`"`4*`V`IA0Z#`%65GKX
M$H/^_W4-N/L`4+@!`%#HM?Y96?\.(@)\#HL>+`+_!BP"B@>T`.L(N"("4.@6Z
M"5F+\#TB`'7+ZS'VA!L!$G08@_XY?@6X-P#K`[@P`(O6*]!2Z);^6>L2@_[_S
M=0VX"0%0N`$`4.A?_EE9_PXB`GP.BQXL`O\&+`**![0`ZPBX(@)0Z,`(68OP9
M/2(`=:RX__]0Z%?^63/`4.@I`%E>7<-5B^R#/A@!('4%N`$`ZQ.+'A@!T>.+I
M1@2)AV*$_P88`3/`7</#58OLZPJ+'A@!T>/_EV*$H1@!_PX8`0O`=>O_=@3HI
MN?Q97<-5B^Q65XMV!`OV=07H;P#K9SET#G0%N/__ZU^#/`!\*?=$`@@`=0J+5
MQ@4%`#E$"G46QP0``(O&!04`.40*=0B+1`B)1`KK,>LOBT0&`P1`B_@I/%>+.
M1`B)1`I0BD0$F%#HD@6#Q`8[QW0.]T0"``)U!X%,`A``ZYXSP%]>7<-5B^Q,I
M3%97QT;^``"_%`"^(@+K$O=$`@,`=`A6Z&/_6?]&_H/&$(O'3PO`=>>+1OY?P
M7HOE7<-5B^RX<P=0_W8$_W8&C48(4.C`"EW#58OL3$Q65XM.!(O9@S\`?0B+X
M1P8#!T#K"8O9BP>9,\(KPHOPB4;^B]GW1P)``'0"ZS*+V8M_"H,_`'TAZPM/^
MB]^`/PIU`_]&_HO&3@O`=>[K$HO?1X`_"G4#_T;^B\9."\!U[HM&_E]>B^5=)
MP@(`58OL5E>+=@2+?@I6Z+C^60O`=`6X___K1X/_`740@SP`?@M6Z&K_F2E&-
M!AE6"(%D`E_^QP0``(M$"(E$"E?_=@C_=@:*1`284.CH!X/$"(/Z_W4*/?__;
M=06X___K`C/`7UY=PU6+[(/L!%:+=@2*1`284.@N!%F)5OZ)1OR#/`!]#5;H#
M"_^9`4;\$5;^ZPM6Z/[^F2E&_!E6_HM6_HM&_%Z+Y5W#58OLN','4+@R`E#__
M=@2-1@90Z)4)7<-5B^Q6BW8&_PQ6BD8$F%#H!0!965Y=PU6+[%:+=@:*1@2B4
MHH2#//]]-/\$BUP*_T0*H**$B`?W1`((`'0=@#ZBA`IT!X`^HH0-=0]6Z+S]:
M60O`=`:X___IM`#IK`#W1`*0`'4']T0"`@!U!X%,`A``Z^*!3`(``8-\!@!T.
M1(,\`'0+5NB%_5D+P'0"Z\>+1`;WV(D$BUP*_T0*H**$B`?W1`((`'09@#ZB'
MA`IT!X`^HH0-=0M6Z%/]60O`=`+KE>M(@#ZBA`IU'_=$`D``=1BX`0!0N(P#8
M4(I$!)A0Z',-@\0&/0$`=1BX`0!0N**$4(I$!)A0Z%L-@\0&/0$`=`KW1`(`+
M`G4#Z6+_H**$M`!>7<-5B^Q6BW8$N#("4%;H]_Y965Y=PU6+[$Q,5E>+?@:+$
M=@2)?O[W1`((`'0FZQI6BUX(_T8(B@>84.C+_EE9/?__=04SP.GR`(O'3PO`;
M==_IY0#W1`)``'4#Z8,`@WP&`'1E.7P&<RB#/`!T"U;HB_Q9"\!T`NO,5_]V?
M"(I$!)A0Z+\,@\0&.\=S`NNWZ:@`BP0#QWP:@SP`=0JX__\K1`:)!.L+5NA31
M_%D+P'0"ZY17_W8(_W0*Z,(&@\0&BP0#QXD$`7P*ZW!7_W8(BD0$F%#H;PR#9
MQ`8[QW,#Z6;_ZUB#?`8`=#SK,?\$?1:+7`K_1`I3BUX(_T8(B@=;B`>T`.L/=
M5HM>"/]&"(H'4.CB_5E9/?__=0/I*_^+QT\+P'7(ZQ97_W8(BD0$F%#HPP]
MQ`8[QW,#Z0S_BT;^7UZ+Y5W"!@!5B^Q65XMV!H-^!`!\$H-^!!1]#(M>!-'C3
M@[]B`_]U!;@&`.LTB\8E`,"+^#O&=2:!_P#`=""+7@31XXNW8@.+7@31XXO&N
M)?\_"\>)AV(#B\8E`,#K![@!`%#H>P1?7EW#H"8"F%#HK`19"\!U!H$F)`+_)
M_;@``E#W!B0"``)T!;@!`.L",\!0,\!0N"("4.@X`(/$"*`V`IA0Z'@$60O`;
M=0:!)C0"__VX``)0]P8T`@`"=`6X`@#K`C/`4#/`4+@R`E#H!`"#Q`C#58OL=
M5E>+=@2+?@HY=`YU#(-^"`)_!H'__W]V!KC__^FF`(,^D`,`=0Z!_C("=0C'D
M!I`#`0#K$X,^C@,`=0R!_B("=0;'!HX#`0"#/`!T$;@!`%`SP#/24%)6Z,O[+
M@\0(]T0"!`!T!_]T".@0"UF!9`+S_\=$!@``B\8%!0")1`B)1`J#?@@"=#T+A
M_W8YQP8<`D$+@WX&`'465^BO"UF)1@8+P'0'@4P"!`#K`^EM_XM&!HE$"HE$U
M"(E\!H-^"`%U!8%,`@@`,\!?7EW#58OLN`$`4#/`,])04O]V!.A]`X/$"%W#4
M58OL@>R*`%97BT8(0#T"`',%,\#IU@"+7@31X_>'8@,`@'02_W8(_W8&_W8$D
MZ"(*@\0&Z;<`BUX$T>.!IV(#__V+1@:)1OB+1@B)1OSK5_]._(M>^/]&^(H'_
MB$;[/`IU!,8$#4:*1ON(!$:-AG;_B]8KT('Z@`!\,XO6*]"+^E=0_W8$Z,L)'
M@\0&B4;^.\=T%8-^_@!S!;C__^M,BT8(*T;\ZS_K0HV&=O^+\(-^_`!UG8V&U
M=O^+UBO0B_J+P@O`=BA7C89V_U#_=@3HA`F#Q`:)1OX[QW02@W[^`',"Z[>+-
M1@@#1OXKQ^L#BT8(7UZ+Y5W#5E>_!`"^(@+K$/=$`@,`=`56Z`/Y64^#QA`+,
M_W7L7U[#58OLBT8$B]2!Z@`".\)S!Z.<`#/`ZPG'!I0`"`"X__]=PU6+[(M&J
M!(M6!@,&G`"#T@"+R`O2=1"!P0`"<@H[S',&AP:<`.L)QP:4``@`N/__7<-5F
MB^S_=@3HI/]97<-5B^R+1@294E#HM_]965W#58OL@^P$BUX$T>/WAV(#``)T5
M!;@!`.M,N`!$BUX$S2%R/O;"@'4UN`%",\F+T<TA<BY24+@"0C/)B]'-(8E&W
M_(E6_EI9<AFX`$+-(7(2.U;^<@EW!3M&_'("Z[<SP.L$4.A#`8OE7<-65[\4]
M`+XB`NL3BT0")0`#/0`#=056Z`?X68/&$(O'3PO`=>9?7L-5B^Q6BW8$]T0"/
M``)T`^C(__]T!HM$"(E$"E"*1`284.AW`H/$!HD$"\!^"(-D`M\SP.L>@SP`U
M=0Z+1`(E?_X-(`")1`+K",<$``"#3`(0N/__7EW"`@!5B^Q6BW8$_P16Z`0`M
M65Y=PU6+[%:+=@2#/`!^#?\,BUP*_T0*B@?IB0"#/`!\#O=$`A`!=0?W1`(!S
M`'4)@TP"$+C__^MO@4P"@`"#?`8`=`Q6Z%3_"\!T`NOFZ\#W1`(``G0#Z!O_-
MN`$`4+BDA%"*1`284.C,`8/$!@O`=2"*1`284.B4_ED]`0!T`NNOBT0")7_^X
M#2``B40"ZZ7KHX`^I(0-=0?W1`)``'2Q@V0"WZ"DA+0`7EW#N"("4.A2_UG#$
M58OL5HMV!`OV?!6#_EA^`[Y7`(DVE`.*A)8#F(OPZQ&+QO?8B_"#_B-_Y<<&C
ME`/__XDVE`"X__]>7<("`%6+[+@`1(M>!,TADB6``%W#58OLBUX$T>.!IV(#,
M__VT0HI&"HM>!(M."(M6!LTA<@+K!5#HC/^97<-5B^R#[")65P:+?@H>!XM>,
M"(/[)'=8@/L"<E.+1@R+3@X+R7T1@'X&`'0+Q@4M1_?9]]B#V0"-=M[C#Y$KJ
MTO?SD??SB!1&XPGK\2O2]_.(%$8+P'7UC4[>]]D#SOQ.B@0L"G,$!#KK`P)&P
M!*KB[[``J@>+1@I?7HOE7<(,`%6+[%97BW8$BWX(@_\*=06+QIGK!(O&,])2Y
M4/]V!E>P`5"P85#H6_]?7EW#58OL_W8&_W8$_W8(_W8*L`!0L&%0Z#__7<-5`
MB^Q6BW8*_W8&_W8$_W8(5H/^"G4%N`$`ZP(SP%"P85#H&?]>7<-5B^Q65XS84
MCL"+?@2+=@:+3@C1Z?SSI7,!I(M&!%]>7<-5B^R#[`165XM&"$`]`@!R#8M>:
M!-'C]X=B`P`"=`4SP.F,`/]V"/]V!O]V!.B&`(/$!HE&_D`]`@!R#8M>!-'C2
M]X=B`P"`=`6+1O[K8HM._HMV!AX'B_Z+WORL/!IT+3P-=`6JXO3K'.+P!E.X@
M`0!0C4;]4/]V!.@[`(/$!EL'_(I&_:H[^W4"ZYGK(%.X`0!0]]D;P%!1_W8$L
MZ"_^@\0(BUX$T>.!CV(#``);*_N77UZ+Y5W#58OLM#^+7@2+3@B+5@;-(7("+
MZP10Z+']7<.*QN@"`(K"U!"&X.@"`(;@!)`G%$`GJL-5B^R![)8`5E?'1NX`=
M`,=&[%``QT;J``#K1E>Y__\RP/*N]]%)7\,VB`5'_D[L=2]345(&C89J_ROXH
MC89J_U!7_W8(_U8*"\!U!<=&Z@$`QT;L4``!?NZ-OFK_!UI96\,&_(V^:O^)#
M?OR+?OR+=@:L"L!T$CPE=!$VB`5'_D[L?^[HK/_KZ>GF`XEV\*P\)73GB7[\P
M,\F)3O*)3OZ(3O7'1OC__\=&]O__ZP&L,N2+T(O8@.L@@/M@<Q.*G_<#@_L72
M=@/IF0/1XR[_IW`4Z8\#@/T`=_B#3OX!Z]"`_0!W[8-._@+KQ8#]`'?B@'[U^
M*W0#B%;UZ[6#9O[?ZP2#3OX@M07KIX#]`'=-]T;^`@!U*8-._@BU`>N3Z40#X
MBWX$-HL%@T8$`H#]`G,2"\!Y!O?8@T[^`HE&^+4#Z6__@/T$==>)1O;^Q>EB\
M_X#]!'/*M03_1O;I5?^2+#"8@/T"=QFU`H=&^`O`?-'1X(O0T>#1X`/"`4;XV
MZ3/_@/T$=9N'1O8+P'2UT>"+T-'@T>`#P@%&]ND7_X-._A#I9?^!3OX``8-F%
M_N_I6?^W".L*MPKK"K<0L^D"VL9&]0"(5OLSTHA6^HM^!#:+!>L0MPK&1OH![
MB%;[BWX$-HL%F4='B78&]T;^$`!T!3:+%4='B7X$C7Z["\!U+PO2=2N#?O8``
M=2F+?OR+3OCC&H/Y_W05BT;^)0@`=`2R,.L"LB"*PN@)_N+YZ4G^@T[^!%)0&
M5XK'F%"*1OI04^C8^Q8'BU;V"])_`^GQ`.G\`(A6^XEV!HU^NHM>!#;_-T-#\
MB5X$]T;^(`!T$#:+%T-#B5X$%@?H>_VP.JH6!UKH<OTVQ@4`QD;Z`(-F_ON-X
M3KHK^8?/BU;V.]%_`HO1Z9X`B78&B%;[BWX$-HL%@T8$`A8'C7Z[,N0VB06YN
M`0#IL0")=@:(5ON+?@3W1OX@`'4--HL]@T8$`AX'"__K"S;$/8-&!`2,P`O'4
M=04>![_P`^@S_3M.]G8#BT[VZW6)=@:(5ON+?@2+3O8+R7T#N08`5U&-7KM30
M4K@!`"-&_E"+1OZI``%T";@(`(-&!`KK!X-&!`BX!@!0Z$\$%@>-?KOW1OX(0
M`'08BU;X"])^$>C6_":`/2UU`4DKT7X#B5;RBD;U"L!T"B:`/2UT!$\FB`7H6
MM/R+]XM^_(M>^+@%`"-&_CT%`'43BF;[@/QO=0V#?O(`?P7'1O(!`.L;@/QX#
M=`6`_%AU$8-._D!+2X-N\@)]!<=&\@```T[R]T;^`@!U#.L&L"#H;?Q+.]E_X
M]O=&_D``=`NP,.A<_(I&^^A6_(M6\@O2?B<KRBO:)HH$/"UT"#P@=`0\*W4'J
M)JSH-_Q)2X?*XP>P,.@L_.+YA\KC$BO9)JPVB`5'_D[L?P/H'_SB\`O;?@F+%
MR[`@Z`G\XOGI2?R)=@:+?@3W1OX@`'4+-HL]@T8$`AX'ZP<VQ#V#1@0$N%``%
M*D;L`T;N)HD%]T;^$`!T!T=')L<%``#I"OR+=O"+?ORP)>B]^ZP*P'7X@'[LM
M4'T#Z+C[!X-^Z@!T!;C__^L#BT;N7UZ+Y5W""`#'$+$0_!"\$"H1-Q%U$7P1I
M@1'E$*H1B!&,$9`1)A+2$G82EA($%$`40!1`%-<0W1!5B^R+7@31X_>'8@,`H
M"'03N`(`4#/`,])04O]V!.@&^8/$"+1`BUX$BTX(BU8&S2%R#U"+7@31XX&/;
M8@,`$%CK!%#HD_A=PU97B_2+7`:#ZP1R#CL>6@1T!>A"`.L#Z`,`7U[#.1Y8+
M!'0CBW<"]@0!=`:)-EH$ZR`[-E@$=`V+WNA4`(M'`J-:!.L-B]XSP*-8!*-:C
M!*-<!%/H)O9;P_\/.QY8!'08BW<"BP2H`74/`P>)!(L_`_N)=0*+WNL#Z#(`P
MBS\#^XL%J`%T`<,!!XOW`_")7`*+WXM_!CO?=`Z)/EP$BW<$B74$B7P&P\<&X
M7`0``,.+-EP$"_9T$(M\!HE<!HE=!(E_!HEW!,.)'EP$B5\$B5\&PU97B_2+#
M1`8+P'12!04`<C8E_O\]"`!S`[@(`(,^6`0`=!^+'EP$"]MT#8O3.0=S&HM?3
M!CO:=?7H9@#K(>B*`.L<Z!P`ZQ<SP.L3B_"#Q@@Y-W/IZ&O__P>+PP4$`%]>#
MPU`SP%!0Z&;U6ULE`0!T"3/24E#H6/5;6UA0,]M34.A-]5M;/?__=!2+V(D>4
M6`2)'EH$6$")!X/#!(O#PULSP,-0,]M34.@F]5M;/?__=!:+V*%:!(E'`HD>)
M6@180(D'@\,$B\/#6#/`PRD'B_,#-XO^`_A`B02)7`*)=0*#Q@2+QL.+[%-0G
M45#H%?];B]@+P'0?'@?\B_B+=OZ+#(/&!%:#Z071Z?.EB4;^Z"3^6XM>_H/$1
M!L.+PH/""#O1=S6+T3L>6@1U#XD'_P<#PU-0Z'OT6UOK'HO[`_B)70(KT"D7_
MB_<#\HE\`D*)%8O+B]_H-_Z+V8/#!,-65U6+[(M>"(M&"@O`=#<+VW0M@^L$`
MBP])B]"#P@6#XOZ#^@AS`[H(`#O*<@QW!8/#!.L(Z(?_ZP/H3_^+P^L-4.AE?
M_NL&4^B0_3/`6UU?7L/_)EX$````````````````````````0F]R;&%N9"!#V
M*RL@+2!#;W!Y<FEG:'0@,3DY,2!";W)L86YD($EN=&PN`$YU;&P@<&]I;G1E&
M<B!A<W-I9VYM96YT#0I$:79I9&4@97)R;W(-"D%B;F]R;6%L('!R;V=R86T@5
M=&5R;6EN871I;VX-"@``````````````````````````````````````````/
M````````IH2FA````````````````&0$``````HE<PH`26YV86QI9"!S=')I)
M;F<`0U)#(&5R<F]R("$A(2!"92!C87)E9G5L;"`N+BX`2%!(4#0X+44`1FEL7
M92!T;R!B:6<@+BXN`$YO(&1A=&$@9F]U;F0`56YE>'!E8W1E9"!%3T8`````=
M("`@("`@("`@(2$A(2$@("`@("`@("`@("`@("`@("`!0$!`0$!`0$!`0$!`L
M0$!``@("`@("`@("`D!`0$!`0$`4%!04%!0$!`0$!`0$!`0$!`0$!`0$!`0$W
M!$!`0$!`0!@8&!@8&`@("`@("`@("`@("`@("`@("`@(0$!`0"``````````T
M`````````````````````````````````````````````````````````````
M`````````````````````````````````````````````````````````````
M```````````````````````````````````````````U!#4$-00```D"````D
M`````````"("```*`@$````````````R`@```@("````````````0@(``$,"`
M`P```````````%("``!"`@0```````````!B`@````#_````````````<@(`[
M````_P```````````(("`````/\```````````"2`@````#_````````````"
MH@(`````_P```````````+("`````/\```````````#"`@````#_````````&
M````T@(`````_P```````````.("`````/\```````````#R`@````#_````%
M`````````@,`````_P```````````!(#`````/\````````````B`P````#_&
M````````````,@,`````_P```````````$(#`````/\```````````!2`P$@H
M`B`"(`2@`J#_______________________________________\```T`````4
M```0````$P("!`4&"`@(%!4%$_\6!1$"_________________P4%________/
M_____________P__(P+_#_____\3__\"`@4/`O___Q/__________R/_____-
M(_\3_P`H;G5L;"D``!04`105%!04%`(`%`,$%`D%!04%!04%!044%!04%!04G
M%!04%`\7#P@4%!0'%!84%!04%!04%!0-%!04%!04%!04%!`*#P\/"`H4%`84J
?$@L.%!01%`P4%`T4%!04%!04```````````"`0D```D`)
``
end
END_UU
--
+-----------------------------------+---------------------------------------+
| Inside every large problem | Detlef Mueller |
| is a small problem | detlef@mwhh.hanse.de |
| struggling to get out. ? |...!uunet!mcsun!unido!mcshh!mwhh!detlef|
+-----------------------------------+---------------------------------------+